package com.wh.wisdomsite.xbox.server.util;

import com.wh.wisdomsite.xbox.ba.entity.Menu;

import java.util.ArrayList;
import java.util.List;

/**
 * 系统菜单Util
 *
 * @version V1.0
 * @Package: com.wh.wisdomsite.xbox.server.util
 * @author: 丁奕
 * @date: 2018-11-30 10:27
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 **/
public class MenuUtils {

    /**
     * 根据权限值，在传入菜单列表中获取到对应的菜单
     * @param permission
     * @param menuList
     * @return
     */
    public static Menu getMenuByPermission(String permission, List<Menu> menuList){
        for(Menu menu : menuList){
            if(permission.equals(menu.getPermission())){
                return menu;
            }
        }
        return null;
    }

    /**
     * 根据父ID获取菜单List
     * @param parentId
     * @param menuList
     * @return
     */
    public static List<Menu> getMenusByParentId(String parentId, List<Menu> menuList){
        List<Menu> resultList = new ArrayList<>();
        for(Menu menu : menuList){
            if(menu.getParentId().equals(parentId)){
                resultList.add(menu);
            }
        }
        return resultList;
    }

    /**
     * 根据权限值，在传入的树形菜单列表中获取到对应的菜单
     * @param permission
     * @param treeMenu
     * @return
     */
    public static Menu getMenuByPermissionInTreeMenus(String permission, List<Menu> treeMenu){
        Menu menu = getMenuByPermission(permission, treeMenu);
        if(menu == null){
            for(Menu menu1 : treeMenu){
                menu = getMenuByPermissionInTreeMenus(permission, menu1.getChildren());
                if(menu != null){
                    break;
                }
            }
        }
        return menu;
    }
}
